
<!DOCTYPE html>
<html lang="zh-CN">
<head>
    <meta charset="UTF-8">
    <title>标题</title>
    <meta name="generator" content="HTMLTestReport 0.0.1"/>
    <link rel="stylesheet" href="http://unpkg.com/layui@2.6.8/dist/css/layui.css">
    
<style type="text/css">
    .title { width: auto; height: 60px; text-align: center; font: bolder 38px/60px "Microsoft YaHei UI"; color: #009688; }
    .summary span { font: normal 16px/38px "Microsoft YaHei UI"; margin-left: 20px; }
    .success-btn { background-color: #28a745; }
    .skip-btn { background-color: #84898c; }
    .passClass  { background-color: #bdedbc; }
    .failClass  { background-color: #ffefa4; }
    .errorClass { background-color: #ffc9c9; }
    .passCase   { color: #5cb85c; }
    .skipCase   { color: #84898c; }
    .failCase   { color: #FF6600; font-weight: bold; }
    .errorCase  { color: #c00; font-weight: bold; }
    .hiddenRow  { display: none; }
    .testcase   { margin-left: 2em; }
    .layui-table tbody tr:hover, .layui-table-click, .layui-table-header, .layui-table-hover, .layui-table-mend, .layui-table-patch, .layui-table-tool, .layui-table[lay-even] tr:nth-child(even) {
        background-color: transparent;
    }
</style>

    <script type="text/javascript" src="https://cdn.jsdelivr.net/npm/echarts/dist/echarts.min.js"></script>
</head>
<body>
    <script language="javascript" type="text/javascript"><!--
    output_list = Array();
    function showCase(level) {
        trs = document.getElementsByTagName("tr");
        for (var i = 0; i < trs.length; i++) {
            tr = trs[i];
            id = tr.id;
            if (id.substr(0,2) == 'ft') {
                if (level == 2 || level == 0) {
                    tr.className = 'hiddenRow';
                }
                else {
                    tr.className = '';
                }
            }
            if (id.substr(0,2) == 'pt') {
                if (level < 2) {
                    tr.className = 'hiddenRow';
                }
                else {
                    tr.className = '';
                }
            }
        }      
    }
    function showClassDetail(cid, count) {
        var id_list = Array(count);
        var toHide = 1;
        for (var i = 0; i < count; i++) {
            tid0 = 't' + cid.substr(1) + '.' + (i+1);
            tid = 'f' + tid0;
            tr = document.getElementById(tid);
            if (!tr) {
                tid = 'p' + tid0;
                tr = document.getElementById(tid);
            }
            id_list[i] = tid;
            if (tr.className) {
                toHide = 0;
            }
        }
        for (var i = 0; i < count; i++) {
            tid = id_list[i];
            if (toHide) {
                document.getElementById(tid).className = 'hiddenRow';
            }
            else {
                document.getElementById(tid).className = '';
            }
        }
    }
    function showTestDetail(div_id){
        var details_div = document.getElementById(div_id)
        var displayState = details_div.style.display
        if (displayState == 'block' || displayState == '' ) {
            details_div.style.display = 'none'
        }
        else {
            displayState = 'block'
            details_div.style.display = 'block'
        }
    }
    function html_escape(s) {
        s = s.replace(/&/g,'&amp;');
        s = s.replace(/</g,'&lt;');
        s = s.replace(/>/g,'&gt;');
        return s;
    }
    --></script>
    <div class="layui-container">
        
    <!--报告标题-->
    <div class="title">标题</div>
    
    <!--汇总信息-->
    <fieldset class="layui-elem-field summary">
        <legend>测试结果汇总</legend>
        <div class="layui-field-box">
            <table class="layui-table">
                <colgroup>
                    <col width="50%">
                    <col width="50%">
                </colgroup>
                <tbody>
                    <tr>
                        <td>
                            <button type="button" class="layui-btn">开始时间</button>
                            <span class="text-dark">2023-04-06 16:41:11</span>
                        </td>
                        <td>
                            <button type="button" class="layui-btn">执行时间</button>
                            <span class="text-dark">0:00:14.875085 s</span>
                        </td>
                    </tr>
                    <tr>
                        <td>
                            <button type="button" class="layui-btn">用例总数</button>
                            <span class="text-dark">5</span>
                        </td>
                        <td>
                            <button type="button" class="layui-btn">通过率</button>
                            <span class="text-dark">80.00%</span>
                        </td>
                    </tr>
                    <tr>
                        <td colspan="2">
                            <button type="button" class="layui-btn">描述信息</button>
                            <span class="text-dark">描述</span>
                        </td>
                    </tr>
                    <tr>
                        <td colspan="2" align="center">
                            <button type="button" class="layui-btn success-btn">成功用例：4</button>
                            <button type="button" class="layui-btn layui-btn-warm">失败用例：0</button>
                            <button type="button" class="layui-btn layui-btn-danger">错误用例：1</button>
                            <button type="button" class="layui-btn skip-btn">跳过用例：0</button>
                        </td>
                    </tr>
                </tbody>
            </table>
        </div>
    </fieldset>
    
    <!--图表展示-->
    <fieldset class="layui-elem-field summary">
        <legend>图表展示</legend>
        <div class="layui-field-box">
            <div class="char">
                <div id="chart1" style="width: 49%;height: 400px;float: left"></div>
                <div id="chart2" style="width: 49%;height: 400px;float: left"></div>
            </div>
        </div>
    </fieldset>

        
    <fieldset class="layui-elem-field summary">
        <legend>详细信息</legend>
        <div class="layui-field-box">
            <table id='result_table' class="layui-table">
            <thead>
                <tr id='header_row' style='background-color: #009688; color: #fff'>
                    <th>测试用例</th>
                    <th>总数</th>
                    <th>通过</th>
                    <th>失败</th>
                    <th>错误</th>
                    <th>跳过</th>
                    <th>操作</th>
                </tr>
                </thead>
				<tbody>
                
    <tr class='errorClass'>
        <td class="text-center">scripts.User_TestCase.Test_UserList</td>
        <td class="text-center">5</td>
        <td class="text-center">4</td>
        <td class="text-center">0</td>
        <td class="text-center">1</td>
        <td class="text-center">0</td>
        <td class="text-center"><button type="button" class="layui-btn layui-btn-xs" onclick="showClassDetail('c1',5)">详细</button></td>
    </tr>

<tr id='ft1.1' class=''>
    <td class='errorCase'><div class='testcase'>test_case_01</div></td>
    <td>
    <a onfocus='this.blur();' data-toggle="collapse" href="javascript:showTestDetail('div_ft1.1')">
        错误</a>
    </td>
    <td colspan='5'>
    <div id='div_ft1.1' class="collapse in">
        <blockquote class="layui-elem-quote">
            <pre>ft1.1: 

==============================================================================================================


Traceback (most recent call last):
  File "C:\Users\Admin\PycharmProjects\pythonProject\venv\lib\site-packages\urllib3\connectionpool.py", line 703, in urlopen
    httplib_response = self._make_request(
  File "C:\Users\Admin\PycharmProjects\pythonProject\venv\lib\site-packages\urllib3\connectionpool.py", line 449, in _make_request
    six.raise_from(e, None)
  File "&lt;string&gt;", line 3, in raise_from
  File "C:\Users\Admin\PycharmProjects\pythonProject\venv\lib\site-packages\urllib3\connectionpool.py", line 444, in _make_request
    httplib_response = conn.getresponse()
  File "C:\Users\Admin\AppData\Local\Programs\Python\Python310\lib\http\client.py", line 1374, in getresponse
    response.begin()
  File "C:\Users\Admin\AppData\Local\Programs\Python\Python310\lib\http\client.py", line 318, in begin
    version, status, reason = self._read_status()
  File "C:\Users\Admin\AppData\Local\Programs\Python\Python310\lib\http\client.py", line 279, in _read_status
    line = str(self.fp.readline(_MAXLINE + 1), "iso-8859-1")
  File "C:\Users\Admin\AppData\Local\Programs\Python\Python310\lib\socket.py", line 705, in readinto
    return self._sock.recv_into(b)
ConnectionResetError: [WinError 10054] 远程主机强迫关闭了一个现有的连接。

During handling of the above exception, another exception occurred:

Traceback (most recent call last):
  File "C:\Users\Admin\PycharmProjects\pythonProject\venv\lib\site-packages\requests\adapters.py", line 489, in send
    resp = conn.urlopen(
  File "C:\Users\Admin\PycharmProjects\pythonProject\venv\lib\site-packages\urllib3\connectionpool.py", line 787, in urlopen
    retries = retries.increment(
  File "C:\Users\Admin\PycharmProjects\pythonProject\venv\lib\site-packages\urllib3\util\retry.py", line 592, in increment
    raise MaxRetryError(_pool, url, error or ResponseError(cause))
urllib3.exceptions.MaxRetryError: HTTPConnectionPool(host='127.0.0.1', port=8001): Max retries exceeded with url: http://uat-ulm-sale-admin.jsunet.cn/backend/admin/members?page_no=1&amp;page_size=10 (Caused by ProxyError('Cannot connect to proxy.', ConnectionResetError(10054, '远程主机强迫关闭了一个现有的连接。', None, 10054, None)))

During handling of the above exception, another exception occurred:

Traceback (most recent call last):
  File "D:\ULM\scripts\User_TestCase.py", line 21, in test_case_01
    resp = UserTest.get_list(data1)
  File "D:\ULM\api\Userlist.py", line 13, in get_list
    resp = requests.get(url, headers=headers, params=data_list)
  File "C:\Users\Admin\PycharmProjects\pythonProject\venv\lib\site-packages\requests\api.py", line 73, in get
    return request("get", url, params=params, **kwargs)
  File "C:\Users\Admin\PycharmProjects\pythonProject\venv\lib\site-packages\requests\api.py", line 59, in request
    return session.request(method=method, url=url, **kwargs)
  File "C:\Users\Admin\PycharmProjects\pythonProject\venv\lib\site-packages\requests\sessions.py", line 587, in request
    resp = self.send(prep, **send_kwargs)
  File "C:\Users\Admin\PycharmProjects\pythonProject\venv\lib\site-packages\requests\sessions.py", line 701, in send
    r = adapter.send(request, **kwargs)
  File "C:\Users\Admin\PycharmProjects\pythonProject\venv\lib\site-packages\requests\adapters.py", line 559, in send
    raise ProxyError(e, request=request)
requests.exceptions.ProxyError: HTTPConnectionPool(host='127.0.0.1', port=8001): Max retries exceeded with url: http://uat-ulm-sale-admin.jsunet.cn/backend/admin/members?page_no=1&amp;page_size=10 (Caused by ProxyError('Cannot connect to proxy.', ConnectionResetError(10054, '远程主机强迫关闭了一个现有的连接。', None, 10054, None)))
</pre>
        </blockquote>
    </div>
    </td>
</tr>

<tr id='pt1.2' class='hiddenRow'>
    <td class='passCase'><div class='testcase'>test_case_02</div></td>
    <td>
    <a onfocus='this.blur();' data-toggle="collapse" href="javascript:showTestDetail('div_pt1.2')">
        通过</a>
    </td>
    <td colspan='5'>
    <div id='div_pt1.2' class="collapse in">
        <blockquote class="layui-elem-quote">
            <pre>pt1.2: 

==============================================================================================================


{'data': [{'id': '80', 'member_id': '1641355789378039809', 'member_no': 'ULM1641355789378039809', 'real_name': '杨铭铭', 'alipay_account': '13023802967', 'head_img': 'https://ulami.oss-cn-shanghai.aliyuncs.com/ulami/ulm/3FA08C0BFDFB4BBDA73C42C91CE21748.png', 'level_code': 'MEMBER', 'invitation_code': 'OIv9Kkk9', 'invitation_url': 'http://uat-ulm-sale-h5.jsunet.cn/enroll?in_code=OIv9Kkk9', 'inviter_id': '1641016393336139777', 'is_upgradeable': 1, 'is_need_cultivation_fee': 0, 'cultivation_fee_percentage': 10, 'up_member_id': '1641016393336139777', 'exp_center_id': '1641016393336139777', 'op_center_id': '1641016393285808130', 'is_del': 0, 'create_time': '1680164689', 'creator': 'm_13023802967', 'update_time': None, 'updater': None, 'uname': 'm_13023802967', 'nickname': '杨铭铭', 'midentity': '350624199804082222', 'mobile': '13023802967', 'consum_point': '8640', 'back_point': '8640', 'un_back_point': '3360', 'level_name': '普通用户', 'inviter_info': '张秀芳(18991561138)', 'is_upgradeable_name': '允许', 'is_need_cultivation_fee_name': '不需要', 'up_member_info': '张秀芳(18991561138)', 'exp_center_info': '张秀芳(18991561138)', 'op_center_info': '李捷(13992444918)', 'inviter_mobile': None, 'inviter_real_name': None, 'exp_center_mobile': None, 'exp_center_real_name': None, 'op_center_mobile': None, 'op_center_real_name': None}], 'page_no': 1, 'page_size': 10, 'data_total': 1}
</pre>
        </blockquote>
    </div>
    </td>
</tr>

<tr id='pt1.3' class='hiddenRow'>
    <td class='passCase'><div class='testcase'>test_case_03_0__1</div></td>
    <td>
    <a onfocus='this.blur();' data-toggle="collapse" href="javascript:showTestDetail('div_pt1.3')">
        通过</a>
    </td>
    <td colspan='5'>
    <div id='div_pt1.3' class="collapse in">
        <blockquote class="layui-elem-quote">
            <pre>pt1.3: 

==============================================================================================================


用户1 : {'id': '82', 'member_id': '1642062875640528897', 'member_no': 'ULM1642062875640528897', 'real_name': '庄运营', 'alipay_account': '15159280000', 'head_img': 'https://ulami.oss-cn-shanghai.aliyuncs.com/ulami/ulm/3FA08C0BFDFB4BBDA73C42C91CE21748.png', 'level_code': 'EXP_CENTER', 'invitation_code': 'LLw0Rq4N', 'invitation_url': 'http://uat-ulm-sale-h5.jsunet.cn/enroll?in_code=LLw0Rq4N', 'inviter_id': '0', 'is_upgradeable': 0, 'is_need_cultivation_fee': 0, 'cultivation_fee_percentage': 10, 'up_member_id': '1641016393285808130', 'exp_center_id': '0', 'op_center_id': '1641016393285808130', 'is_del': 0, 'create_time': '1680333272', 'creator': 'm_15159280000', 'update_time': None, 'updater': None, 'uname': 'm_15159280000', 'nickname': 'm_15159280000', 'midentity': '320304198809091111', 'mobile': '15159280000', 'consum_point': '0', 'back_point': None, 'un_back_point': None, 'level_name': '体验中心', 'inviter_info': None, 'is_upgradeable_name': '不允许', 'is_need_cultivation_fee_name': '不需要', 'up_member_info': '李捷(13992444918)', 'exp_center_info': None, 'op_center_info': '李捷(13992444918)', 'inviter_mobile': None, 'inviter_real_name': None, 'exp_center_mobile': None, 'exp_center_real_name': None, 'op_center_mobile': '13992444918', 'op_center_real_name': '李捷'}
</pre>
        </blockquote>
    </div>
    </td>
</tr>

<tr id='pt1.4' class='hiddenRow'>
    <td class='passCase'><div class='testcase'>test_case_03_1__2</div></td>
    <td>
    <a onfocus='this.blur();' data-toggle="collapse" href="javascript:showTestDetail('div_pt1.4')">
        通过</a>
    </td>
    <td colspan='5'>
    <div id='div_pt1.4' class="collapse in">
        <blockquote class="layui-elem-quote">
            <pre>pt1.4: 

==============================================================================================================


用户2 : {'id': '80', 'member_id': '1641355789378039809', 'member_no': 'ULM1641355789378039809', 'real_name': '杨铭铭', 'alipay_account': '13023802967', 'head_img': 'https://ulami.oss-cn-shanghai.aliyuncs.com/ulami/ulm/3FA08C0BFDFB4BBDA73C42C91CE21748.png', 'level_code': 'MEMBER', 'invitation_code': 'OIv9Kkk9', 'invitation_url': 'http://uat-ulm-sale-h5.jsunet.cn/enroll?in_code=OIv9Kkk9', 'inviter_id': '1641016393336139777', 'is_upgradeable': 1, 'is_need_cultivation_fee': 0, 'cultivation_fee_percentage': 10, 'up_member_id': '1641016393336139777', 'exp_center_id': '1641016393336139777', 'op_center_id': '1641016393285808130', 'is_del': 0, 'create_time': '1680164689', 'creator': 'm_13023802967', 'update_time': None, 'updater': None, 'uname': 'm_13023802967', 'nickname': '杨铭铭', 'midentity': '350624199804082222', 'mobile': '13023802967', 'consum_point': '8640', 'back_point': '8640', 'un_back_point': '3360', 'level_name': '普通用户', 'inviter_info': '张秀芳(18991561138)', 'is_upgradeable_name': '允许', 'is_need_cultivation_fee_name': '不需要', 'up_member_info': '张秀芳(18991561138)', 'exp_center_info': '张秀芳(18991561138)', 'op_center_info': '李捷(13992444918)', 'inviter_mobile': '18991561138', 'inviter_real_name': '张秀芳', 'exp_center_mobile': '18991561138', 'exp_center_real_name': '张秀芳', 'op_center_mobile': '13992444918', 'op_center_real_name': '李捷'}
</pre>
        </blockquote>
    </div>
    </td>
</tr>

<tr id='pt1.5' class='hiddenRow'>
    <td class='passCase'><div class='testcase'>test_case_03_2__3</div></td>
    <td>
    <a onfocus='this.blur();' data-toggle="collapse" href="javascript:showTestDetail('div_pt1.5')">
        通过</a>
    </td>
    <td colspan='5'>
    <div id='div_pt1.5' class="collapse in">
        <blockquote class="layui-elem-quote">
            <pre>pt1.5: 

==============================================================================================================


用户3 : {'id': '79', 'member_id': '1641338406454272002', 'member_no': 'ULM1641338406454272002', 'real_name': '戴恩泽', 'alipay_account': '17759102859', 'head_img': 'https://ulami.oss-cn-shanghai.aliyuncs.com/ulami/ulm/3FA08C0BFDFB4BBDA73C42C91CE21748.png', 'level_code': 'MEMBER', 'invitation_code': 'SHHdMmSl', 'invitation_url': 'http://uat-ulm-sale-h5.jsunet.cn/enroll?in_code=SHHdMmSl', 'inviter_id': '1641016393336139777', 'is_upgradeable': 1, 'is_need_cultivation_fee': 0, 'cultivation_fee_percentage': 10, 'up_member_id': '1641016393336139777', 'exp_center_id': '1641016393336139777', 'op_center_id': '1641016393285808130', 'is_del': 0, 'create_time': '1680160545', 'creator': 'm_17759102859', 'update_time': None, 'updater': None, 'uname': 'm_17759102859', 'nickname': 'm_17759102859', 'midentity': '350821199812204217', 'mobile': '17759102859', 'consum_point': '2000', 'back_point': '2000', 'un_back_point': '0', 'level_name': '普通用户', 'inviter_info': '张秀芳(18991561138)', 'is_upgradeable_name': '允许', 'is_need_cultivation_fee_name': '不需要', 'up_member_info': '张秀芳(18991561138)', 'exp_center_info': '张秀芳(18991561138)', 'op_center_info': '李捷(13992444918)', 'inviter_mobile': '18991561138', 'inviter_real_name': '张秀芳', 'exp_center_mobile': '18991561138', 'exp_center_real_name': '张秀芳', 'op_center_mobile': '13992444918', 'op_center_real_name': '李捷'}
</pre>
        </blockquote>
    </div>
    </td>
</tr>

                </tbody>
                <tr id='total_row' class="text-center active">
                    <td align="right">总计</td>
                    <td>5</td>
                    <td>4</td>
                    <td>0</td>
                    <td>1</td>
                    <td>0</td>
                    <td></td>
                </tr>
            </table>
        </div>
	</fieldset>

        <a href="#">
    <ul class="layui-fixbar"><li class="layui-icon layui-fixbar-top" lay-type="top" style="display: list-item;"></li></ul>
    </a>
    
        
    <script type="text/javascript">
        // 初始化echarts实例
        var myChart1 = echarts.init(document.getElementById('chart1'));
        var myChart2 = echarts.init(document.getElementById('chart2'));
        // 指定图表的配置项和数据
        option1 = {
            tooltip: {
                formatter: '{a} <br/>{b} : {c}%'
            },
            toolbox: {
                feature: {
                    restore: {},
                    saveAsImage: {}
                }
            },
            series: [{
                name: '测试结果',
                type: 'gauge',
                detail: {
                    formatter: '80.00%'
                },
                data: [{
                    value: '80.00',
                    name: '用例通过率'
                }],
                axisLine: {
                    lineStyle: {
                        color: [
                            [0.2, '#c20000'],
                            [0.8, '#ddb518'],
                            [1, '#00a10a']
                        ]
                    }
                }
            }]
        };
        option2 = {
            color: ['#00a10a', '#ddb518', 'rgba(204,46,41,0.73)', '#85898c'],
            tooltip: {
                trigger: 'item',
                formatter: '{a} <br/>{b}: {c} ({d}%)'
            },
            legend: {
                orient: 'vertical',
                left: 10,
                data: ['通过', '失败', '错误', '跳过']
            },
            series: [{
                name: '测试结果',
                type: 'pie',
                radius: ['50%', '70%'],
                avoidLabelOverlap: false,
                label: {
                    show: false,
                    position: 'center'
                },
                emphasis: {
                    label: {
                        show: true,
                        fontSize: '30',
                        fontWeight: 'bold'
                    }
                },
                labelLine: {
                    show: false
                },
                data: [{
                        value: 4,
                        name: '通过'
                    },
                    {
                        value: 0,
                        name: '失败'
                    },
                    {
                        value: 1,
                        name: '错误'
                    },
                    {
                        value: 0,
                        name: '跳过'
                    }
                ]
            }]
        };

        myChart1.setOption(option1);
        myChart2.setOption(option2);
    </script>
    
    </div>
</body>
</html>
